#include "drv_main.h"


static void Drv_Ps2_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(	RCC_APB2Periph_GPIOB, ENABLE );	//使能GPIOB时钟
	   
	
	GPIO_InitStructure.GPIO_Pin = PS2_DAT_PIN;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD ;   //下拉输入
	GPIO_Init(PS2_DAT_PORT, &GPIO_InitStructure);

	GPIO_InitStructure.GPIO_Pin = PS2_CMD_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(PS2_CMD_PORT, &GPIO_InitStructure);

	GPIO_InitStructure.GPIO_Pin = PS2_CS_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(PS2_CS_PORT, &GPIO_InitStructure);

	GPIO_InitStructure.GPIO_Pin = PS2_CLK_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(PS2_CLK_PORT, &GPIO_InitStructure);	
}



uint8_t Drv_Ps2_Data_Read(void)
{
	return GPIO_ReadInputDataBit(PS2_DAT_PORT,PS2_DAT_PIN);
}

void Drv_Ps2_Cmd_Write(uint8_t data)
{
	if(data)
	{
		GPIO_SetBits(PS2_CMD_PORT,PS2_CMD_PIN);
	}
	else
	{
		GPIO_ResetBits(PS2_CMD_PORT,PS2_CMD_PIN);
	}
}

void Drv_Ps2_Cs_Write(uint8_t data)
{
	if(data)
	{
		GPIO_SetBits(PS2_CS_PORT,PS2_CS_PIN);
	}
	else
	{
		GPIO_ResetBits(PS2_CS_PORT,PS2_CS_PIN);
	}
}

void Drv_Ps2_Clk_Write(uint8_t data)
{
	if(data)
	{
		GPIO_SetBits(PS2_CLK_PORT,PS2_CLK_PIN);
	}
	else
	{
		GPIO_ResetBits(PS2_CLK_PORT,PS2_CLK_PIN);
	}
}




/**
	* @brief  PS2_GPIO初始化
	* @parm   None
	* @retval None
	*/
void Drv_Ps2_Init(void)
{					     
	Drv_Ps2_Config();
	
}

